# config valid only for current version of Capistrano
lock '3.6.1'

set :application, 'pegasus'
set :repo_url, 'git@git.oschina.net:oldfritter/pegasus.git'

# Default branch is :master
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp

# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, '/murpdata/pkmooc/pegasus'
set :rvm_ruby_version, '2.3.0'

# Default value for :scm is :git
# set :scm, :git

# Default value for :format is :airbrussh.
# set :format, :airbrussh

# You can configure the Airbrussh format using :format_options.
# These are the defaults.
# set :format_options, command_output: true, log_file: 'log/capistrano.log', color: :auto, truncate: :auto

# Default value for :pty is false
# set :pty, true

# Default value for :linked_files is []
append :linked_files, 'config/database.yml'#, 'config/secrets.yml'

# Default value for linked_dirs is []
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system', 'sites', 'sites.v3'

# Default value for default_env is {}
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
# set :rvm_ruby_version, '2.3.0'

# Default value for keep_releases is 5
set :keep_releases, 2

fetch(:rvm_ruby_version)

set :passenger_restart_with_touch, true
set :passenger_rvm_ruby_version, '2.3.0'
set :passenger_in_gemfile, true
set :passenger_pid, "#{shared_path}/tmp/pids/passenger.pid"

namespace :passenger do

  task :start do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      within current_path do
        execute :bundle, "exec passenger start -e production --socket tmp/sockets/passenger.sock -d"
      end
    end
  end

  task :stop do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      within current_path do
        execute :bundle, 'exec passenger stop --pid-file tmp/pids/passenger.pid'
      end
    end
  end

  task :restart do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      within current_path do
        begin
          execute :bundle, 'exec passenger stop --pid-file tmp/pids/passenger.pid'
        rescue
        end
        execute :bundle, "exec passenger start -e production --socket #{shared_path}/tmp/sockets/passenger.sock -d"
      end
    end
  end
  
end